Computer code that implements a user interface (“UI”) may include automation processes. An automation process may be triggered by a user action. For example, in response to a user selection, the code may display additional options for user selection. A UI may include a plurality of controls to provide user functionality. For example, a UI may include a web button, that when selected by a user, performs an action responsive to the user selection. A UI control may display a popup window in response to the user selection.
Computer code implementing a UI should be tested before the UI is deployed. Using automation testing a UI maybe testing against real-life scenarios that may be experienced by a user. Automation testing may verify that the UI performs as designed and as expected. Automation testing may include verifying that the UI presents information to a user that the user expects, is relevant to the user and is responsive to the user's action. Testing performed on automation code may include confirming that institutional coding guidelines have been followed and identifying discrepancies between UI implementation and UI design specifications.
Over the years, test automation tools and processes have matured to simplify the process of developing test automation and creating reliable test scripts that simulate user triggers. The automation testing progress has gone through several stages. Automation testing began with “Record and Playback” and now has reached a fifth generation stage termed “Advanced Codeless Test Automation.” However, even the current approaches to automation testing typically operate on individual controls as opposed to operating on a group of controls. Current approaches also do not have an ability to easily “scale up” and test a UI that includes a high density of automation controls.
Furthermore, current approaches have been unable to efficiently test table related controls. Tables typically include automation functionality such as filtering and sorting of various columns, searching for rows based on their content, verifying table/rows/cells content, editing table elements and row selection, expansion or deletion. Automating testing of each of these table controls typically involves laborious coding tasks.
Thus, using currently available tools, implementing automation testing in a robust and scalable way involves significant amount of coding and requires automation testers with strong software development skills. This disclosure provides apparatus and methods for robust and scalable automation testing, in a modular way, that involve minimal or no coding.